home *** CD-ROM | disk | FTP | other *** search
/ Oh!X 2001 Spring / Oh!X 2001 Spring Special CD-ROM (Japan).7z / Oh!X 2001 Spring Special CD-ROM (Japan) (Track 1).bin / GALAXY / ohx5-2 / d3dxbitmap.cpp < prev    next >
C/C++ Source or Header  |  2001-01-02  |  3KB  |  112 lines

  1. /*
  2.     Oh!X5号
  3.     GalaxyKnights
  4.     bitmapライブラリ手続き部分
  5. */
  6. #define        BEXT
  7. #include    "stdafx.h"
  8. #include    "ohx5_2.h"
  9. HBITMAP    hbm0,hbm1;
  10. long    timer_low;
  11. long    unloaded;
  12.  
  13. BITMAPDATA    datalist[]={
  14.     "TITLE",        640,    480,    640,    480,    1,    0,
  15.     "OFFICE1",        640,    480,    640,    480,    1,    0,
  16.     "OFFICE2",        640,    480,    640,    480,    1,    0,
  17.     "",            0,    0,    0,    0,    0,    0
  18. };
  19. LOOKS        bitmaps[BITMAPMAX];
  20. //    処理用サーフェイス
  21. struct    IDirect3DSurface8*    lpFrontBuffer;            //    フロントバッファ用サーフェイス
  22. struct    IDirect3DSurface8*    lpBackBuffer;            //    バックバッファ用サーフェイス
  23. long                dwTransType;
  24.  
  25. void    title_object_clear(void)
  26. {
  27.     if( hbm0!=NULL ) DeleteObject( hbm0 );
  28.     if( hbm1!=NULL ) DeleteObject( hbm1 );
  29.     hbm0 = hbm1 = NULL;
  30.     unloaded = 1;
  31. }
  32.  
  33.  
  34. /*    ゲームの初期化    */
  35. bool init_bitmaps( void )
  36. {
  37. //    D3DCAPS8        d3dcaps;        //    
  38. //    HRESULT            d3drval;        //    DirectDrawからのリザルトステータス
  39. D3DSURFACE_DESC    d3dsd;            //    テンポラリサーフェイス
  40.  
  41. //    int                ct;
  42.  
  43. //    該当ハードのカラーのケーパビリティをチェック
  44. //    dwTransType には、BltFastで使う透明フィルタのコマンドが入る
  45. //    dwTransType = DDBLTFAST_SRCCOLORKEY;
  46. //    d3dcaps.dwSize = sizeof( d3dcaps );
  47.       
  48. //    スプライト用描画オブジェクトエリアを確保、リソースのコピーはRestoreSurfacesルーチンで行う
  49.     memset( &d3dsd, 0, sizeof( d3dsd ) );
  50.  
  51. //    bitmap リソースの一括確保
  52. /*
  53.     ct = 0;
  54.     while( datalist[ct].resource !="" ){
  55.         ddsd.dwWidth = datalist[ct].sx;
  56.         ddsd.dwHeight= datalist[ct].sy;
  57.         bitmaps[ct].surf = NULL;
  58.         bitmaps[ct].palet= NULL;
  59.         bitmaps[ct].cols = datalist[ct].count;
  60.         bitmaps[ct].sizex= datalist[ct].cx;
  61.         bitmaps[ct].sizey= datalist[ct].cy;
  62.         ddrval = lpDD->CreateSurface( &ddsd, &bitmaps[ct].surf, NULL );
  63.         if( ddrval != D3D_OK ){ return false; }
  64.         ct++;
  65.     }
  66.     unloaded = 1;
  67.     timer_low = 0;
  68.     if( !RestoreSurfaces() ) return false;
  69. */    
  70.     return true;
  71. }
  72.  
  73. bool    release_bitmaps()
  74. {
  75. int    ct = 0;
  76.     title_object_clear();
  77.     while( datalist[ct].resource != "" ){
  78.         xRelease( bitmaps[ct].surf );
  79.         ct++;
  80.     }
  81.     return true;
  82. }
  83.  
  84. /*
  85.     タイトル画面の表示
  86. */
  87.  
  88. bool    display_bitmap( char * filename )
  89. {
  90. //    HRESULT    hr;
  91. //    HRESULT     ddrval;
  92. /*
  93.     timer_low++;
  94.     if( unloaded ){
  95.         hbm0 = (HBITMAP)LoadImage( GetModuleHandle( NULL ), filename, IMAGE_BITMAP, 0, 0, LR_CREATEDIBSECTION );
  96.         if ( NULL == hbm0 ) return false;
  97.         unloaded = 0;
  98.     }
  99. //    ddrval = DDCopyBitmap( lpBackBuffer, hbm0, 0, 0, 0, 0 );
  100.     if( timer_low>60*3 ){
  101.         title_object_clear();
  102.         timer_low = 0;
  103.         system_state = ID_3D_MOVE;
  104.         unloaded = 1;
  105.     }
  106.     // フレーム更新、フリップだろうがブリットだろうがこれでOK
  107. //    hr = lpD3DX->UpdateFrame( 0 );
  108. //    if (hr == DDERR_SURFACELOST || hr == DDERR_SURFACEBUSY) return false;
  109. */
  110.     return true;
  111. }
  112.